#ifndef _GRAPH_H_
#define _GRAPH_H_

struct Node;
struct Graph;

typedef struct _node* pNode;
typedef struct _node Node;
typedef struct Graph* pGraph;

void TestGraph();
pGraph Initilize(int capacity);
void Dispose(pGraph pG);
int VNum(pGraph pG);
int ENum(pGraph pG);
void AddEdge(pGraph pG, int v1, int v2);
int Degree(pGraph pG, int v);
int MaxDegree(pGraph pG);
double AveDegree(pGraph pG);
int NumOfSelfLoops(pGraph pG);
void PrintGraph(pGraph pG);

void DFS(pGraph pG, int v);

#endif